home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / kowin / archive / sys / kowin14d.lzh / include / GOELIB.H < prev    next >
C/C++ Source or Header  |  1992-10-26  |  3KB  |  87 lines

  1. /*Ko-Window Parts library v1.05 1992/10/26  by Goemon*/
  2. /* goelib.h */
  3.  
  4. typedef    struct    {    /* スライドスイッチパターン構造体 */
  5.     int    mode;        /* 0:横 1:縦 */
  6.     Sheet    *Slider;        /*スライダーパターン*/
  7.     Sheet    *Rale[2];    /*溝パターン*/
  8.     Sheet    *Start;        /*溝の開始パターン*/
  9.     Sheet    *End[2];    /*溝の終了パターン*/
  10. }    GSliderPat;
  11.  
  12.  
  13. typedef    struct    {    /* スライドスイッチ構造体 */
  14.     int    num;    /* 番号 */
  15.     int    x;    /* x座標 */
  16.     int    y;    /* y座標 */
  17.     int    max;    /* 最大 */
  18.     int    nx;    /* 数値表示のx座標 */
  19.     int    ny;    /* 数値表示のy座標 */
  20.     int    nmin;    /* 数値の最小値 */
  21.     int    nmax;    /* 数値の最大値 */
  22.     int    nmode;    /* 数値表示モード(0は普通,1は反転) */
  23.     int    npos;    /* 現在位置(相対位置)*/
  24.     int    nc;    /* 表示桁数(符号は含まず)*/
  25.     int    nsize;    /* 文字サイズ */
  26.     char    nstr[16];/*数値表示用文字バッファ*/
  27.     GSliderPat    *gspat;        /*スライダーパターン*/
  28. }    GSlider;
  29.  
  30.  
  31. typedef    struct    {    /* スライドスイッチ辞書構造体 */
  32.     int    max;
  33.     int    num;
  34.     GSlider    *gs;
  35. }    GSliderReg;
  36.  
  37. extern    GSliderPat    GSliderStPatX;
  38. extern    GSliderPat    GSliderStPatY;
  39.  
  40. /*スライドスイッチの描画*/
  41. extern    int    GSliderSetDraw( GSlider *,DrawBuf *);
  42. /*スライドスイッチの移動*/
  43. extern    int    GSliderSetPos( GSlider *,DrawBuf *, int );
  44. /* マウス位置からPOS位置計算*/
  45. extern    int    GSliderGetMPos( GSlider *, int, int, int, int, int );
  46.  
  47. /* マウスがスライダーの範囲内に入っているか */
  48. #define    GSliderGetMPoint(gs,mx,my)    (((gs)->gspat->mode) ? \
  49.     ( (my) >= (gs)->y && (my) <= (gs)->y + (gs)->max \
  50.     + (gs)->gspat->Slider->v && (mx) >= (gs)->x && (mx) < (gs)->x \
  51.     + (gs)->gspat->Slider->h )\
  52.     : ( (mx) >= (gs)->x && (mx) <= (gs)->x + (gs)->max \
  53.     + (gs)->gspat->Slider->h && (my) >= (gs)->y && (my) < (gs)->y \
  54.     + (gs)->gspat->Slider->v )) || \
  55.     ((gs)->nc > 0 && (mx) >= (gs)->nx && (mx) <= (gs)->nx \
  56.     + (gs)->nsize * ((gs)->nc + 1) / 2  && (my) >= (gs)->ny && \
  57.     (my) < (gs)->ny + (gs)->nsize )
  58. /* スライダーの現在位置を得る*/
  59. #define    GSliderGetPos(gs)    (gs)->npos
  60. /* 登録簿の作成 */
  61. #define    GSRegOpen(gsr,mx)    \
  62.     (gsr)->max = (mx);(gsr)->num = 0;\
  63.     (gsr)->gs = (GSlider*)malloc(sizeof(GSlider) * (mx))
  64. /* 登録簿の破棄 */
  65. #define    GSRegClose(gsr)    free((gsr)->gs)
  66.  
  67. /* 登録 */
  68. extern    void    GSRegSetGSlider(GSliderReg *,int,int,int,int,int,int,int,int,int,int,int,int,GSliderPat *);
  69. /* 登録簿内のスライダーの描画*/
  70. extern    int    GSRegSetDraw( GSliderReg *,DrawBuf *);
  71. /* カーソル位置から任意のスライダーを選ぶ */
  72. extern    int    GSRegSelectGSlider( GSliderReg *,int,int);
  73. /* 登録簿検索 */
  74. extern    GSlider    *GSRegGetGSlider(GSliderReg *,int);
  75.  
  76. /* スライダーの現在位置を得る*/
  77. #define    GSRegGetPos(gsr,num)    \
  78.     GSRegGetGSlider(gsr,num)->npos
  79. /* マウス位置からPOS位置計算*/
  80. #define    GSRegGetMPos(gsr,num,mx,my,stat1,stat2,stat3)    \
  81.     GSliderGetMPos(GSRegGetGSlider(gsr,num),mx,my,stat1,stat2,stat3)
  82. /*スライドスイッチの移動*/
  83. #define    GSRegSetPos(gsr,pdbuf,num,pos)    \
  84.     GSliderSetPos(GSRegGetGSlider(gsr,num),pdbuf,pos)
  85.  
  86.  
  87.